package org.patterns.behavior.interpreter;


/**
 * 方向节点类，继承自AbstractNode
 * 方向解释：终结符表达式
 */
public class DirectionNode extends AbstractNode {
    //方向字符串
    private String direction;

    /**
     * 构造函数，初始化方向节点
     *
     * @param direction 方向字符串，表示上下左右
     */
    public DirectionNode(String direction) {
        this.direction = direction;
    }

    /**
     * 方向表达式的解释操作
     *
     * @return 返回相应的方向表达式
     */
    public String interpret() {
        //根据方向字符串解释并返回相应的方向表达式
        if (direction.equalsIgnoreCase("up")) {
            return "向上";
        } else if (direction.equalsIgnoreCase("down")) {
            return "向下";
        } else if (direction.equalsIgnoreCase("left")) {
            return "向左";
        } else if (direction.equalsIgnoreCase("right")) {
            return "向右";
        } else {
            //当方向字符串不匹配任何已知方向时，返回无效指令
            return "无效指令";
        }
    }
}

